gusucode.com > LTE基带收发仿真系统matlab源码程序 > LTE baseband simulation/sub_carr_mapping.m
function mapSymbCell = sub_carr_mapping(precodedSymb,iUE) % 对预编码的复值符号进行资源粒子映射 % 从某个起始载波开始,将连续的可用载波资源分配给第iUE个用户 % 输入:precodedSymb 经过预编码的符号 % iUE:用户序号 % 输出:子载波映射后的符号 % Author: 程式小组(徐萌 张妙 张晓庆) % Date: 2010-07-11 % ========================================================== global LTE_par nTx = LTE_par.BS_par.nAnt; % 基站端天线数 CFI = LTE_par.CFI; % 控制格式占用OFDM符号数 FFT_SIZE = LTE_par.FFT_SIZE; % FFT点数 scPerRB = LTE_par.scPerRB; % 每个资源块包含的子载波数 nOfdmSymb = LTE_par.nOfdmSymb; % 每个子帧内OFDM符号数 nRB = LTE_par.UE_par.nRB(iUE); % 第iUE个用户的PRB数 cellID = LTE_par.BS_par.cellID; % 小区ID iSubFrame = LTE_par.iSubFrame; % 当前子帧号 取值为0~9 startCarr = LTE_par.schedule.startCarr(iUE);% 起始子载波位置 ns = iSubFrame*2; nCarrUsed = nRB*scPerRB; % 第iUE个用户占用的子载波数 if FFT_SIZE == 1024 RB_DL = 50; elseif FFT_SIZE == 2048 RB_DL = 100; end % 可用子载波位置 availableCarr = [FFT_SIZE-RB_DL*scPerRB/2+1:FFT_SIZE 2:RB_DL*scPerRB/2+1]; % 导频占用位置 pilotLocation = find_pilot(cellID,nTx,scPerRB,nOfdmSymb,nRB,ns); mapSymbCell = cell(nTx,1); for iTx = 1:nTx mapSymbCell{iTx} = zeros(FFT_SIZE,nOfdmSymb); iSymb = 1; for iOfdm = CFI+1:nOfdmSymb for iCarr = 1:nCarrUsed if pilotLocation(iCarr,iOfdm) == 0 mapSymbCell{iTx}(availableCarr(iCarr+startCarr),iOfdm) = precodedSymb(iTx,iSymb); iSymb = iSymb+1; end end end end